angular.module('webapp')
    .service("NewsService",["$http", "$q", NewsService]);

function NewsService($http,$q){
    function handleRequest(method,url,data) {
        var defered = $q.defer();
        var config = {
            method: method,
            url: url
        };

        if("POST" === method){
            config.data = data;
        }else if("GET" === method){
            config.params = data;
        }

        //新版本的AngularJs中取消了success和error，用promise规则。
        // $http(config)
        //     .success(function(data){
        //         defered.resolve(data);
        //     })
        //     .error(function(err){
        //         defered.reject(err);
        //     });

        $http(config)
            .then(function (result) { 
                //正确请求成功时处理
                console.info(result);
                defered.resolve(result.data);
            }).catch(function (err) {
                //捕捉错误处理
                console.error(err);
                defered.reject(err); 
            });  
            
        return defered.promise;
    }
    return {
        list: function(params){
            return handleRequest('GET','/news',params);
        },

        save: function(data){
            return handleRequest('POST','/news',data);
        },

        detail: function(id){
            return handleRequest('GET','/news/'+id);
        }
    }
}